/*
 * Number Format 1.2.3
 * (c) 2007-2009 DJB
 *
 */


var numberUtils = {
		/**toNumber将字符串转为数字
		 * Number()的强制类型转换与parseInt()和parseFloat()方法的处理方式相似，只是它转换的是整个值，而不是部分值。还记得吗，parseInt()和parseFloat()方法只转换第一个无效字符之前的字符串，因此 "4.5.6 "将被转换为 "4.5 "。用Number()进行强制类型转换， "4.5.6 "将返回NaN，因为整个字符串值不能转换成数字。如果字符串值能被完整地转换，Number()将判断是调用parseInt()方法还是调用parseFloat()方法。
		 */
	  toNumber : function(s){
		  	if(!s)return 0;
			var s2 = s;
			s2 = s2.replace(/,/g, ''); //替换，号
			s2 = s2.replace(/[ ]/g, ""); //替换空格
			if(!s2) return 0;
			var num = Number(s2);
			return num;
	  },
	  /**
	  * 格式化后的数字
	  * 比如12345.67格式化为12,345.67 
	  * @param {} s  数字串
	  *           n  保留小数位
	  * @return {} 
	  */
	  numberFormats : function(s, n) {
		if (!s || isNaN(s))
			return '';
		n = n > 0 && n <= 20 ? n : 2;
		s = parseFloat((s + "").replace(/[^\d\.-]/g, "")).toFixed(n) + "";
		var l = s.split(".")[0].split("").reverse();
		var r = s.split(".")[1];
		var t = "";
		for (i = 0; i < l.length; i++) {
			t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length && l[i+1] != '-' ? "," : "");
		}
		return t.split("").reverse().join("") + "." + r;
	},

	 /**
	  * 格式化后的数字
	  * 比如12345.67格式化为12,345.67 
	  * @param {} s  数字串
	  *           n  保留小数位
	  * @return {}  默认返回0.00
	  */
	numberFormatsToFixed : function(s, n) {
		if(s && typeof(s)!="number"){
			s=s.replace(/,/g, '');
			s=s.replace(/[ ]/g, '');	
		}
		//数字格式化	
		if(s && s != undefined){
			s = ''+s;
			s=s.replace(/,/g, '');
		}
		if (!s || isNaN(s))
			return '0.00';
		n = n > 0 && n <= 20 ? n : 2;
		s = parseFloat((s + "").replace(/[^\d\.-]/g, "")).toFixed(n) + "";
		var l = s.split(".")[0].split("").reverse();
		var r = s.split(".")[1];
		var t = "";
		for (i = 0; i < l.length; i++) {
			t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length && l[i+1] != '-' ? "," : "");
		}
		return t.split("").reverse().join("") + "." + r;
	},
	/***
	 * 把格式化的数字字符串转为数字格式的字符串,及去掉数字钟的,号
	 * 比如 123,456.01 --> 123456.01
	 * @param s
	 * @param n
	 */
	numnberFormatsRestore : function(s, n) {
		if(!s)return s;
		s = s.replace(/,/g, ''); //替换，号
		s = s.replace(/[ ]/g, ""); //替换空格
		return s;
	},
	
	 /**
     * 把小数转为百分比，保留2位小数
	 比如0.235->23.5%
     */
	parsePercent : function(value) {
		if(!value || isNaN(value)) return '';
        if (typeof value === 'string') {
            if (_trim(value).match(/%$/)) {
                return value;
            }

            return (parseFloat(value) * 100).toFixed(2) + '%';
        }

        if(parseFloat(value) > 1){
        	return value.toFixed(2) + "%";
        }
        return (value * 100).toFixed(2) + '%';
    }
};